package com.xoa.controller.equipment;


import com.xoa.model.equipment.Equipment;
import com.xoa.model.users.Users;
import com.xoa.service.equipment.EquipmentService;
import com.xoa.util.AjaxJson;
import com.xoa.util.LimsJson;
import com.xoa.util.ToJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* 创建作者:   刘欢
* 创建日期:   10:31 2019/7/18
* 类介绍:     这个类是一个关于设备详情的一个类，包括了对设备的ciud等操作
* 参数说明:   * @param null
* @return
*/


@Controller
@RequestMapping("/equipment")
public class EquipmentController {
    @Autowired
    private EquipmentService equipmentService;

    @RequestMapping("/indexList")
    public String indexList(){
        return "/app/equipment/equipmentAccount/index";
    }

    @RequestMapping("/addvice")
    public String addvice(){
        return "/app/equipment/equipmentAccount/addvice";
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   18:32 2019/7/19
    * 方法介绍:   查询所有设备
    * 参数说明:   * @param request
    * @param page

    * @param userFlag
    * @return     com.xoa.util.lims.LimsJson<com.xoa.model.equipment.Equipment>
    */

    @RequestMapping("/selectAllEquipment")
    @ResponseBody
    public LimsJson<Equipment> selectAllEquipment(HttpServletRequest request, Integer page, Integer limit, Boolean userFlag, Integer equipTypeId, String column, String inptext){
        return equipmentService.selectAllEquipment(request,page,limit,userFlag,equipTypeId,column,inptext);
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   18:41 2019/7/19
    * 方法介绍:   根据某个类型查询这个类型下的额所有设备
    * 参数说明:   * @param request
    * @param equipTypeId
    * @return     com.xoa.util.lims.LimsJson<com.xoa.model.equipment.Equipment>
    */


    @RequestMapping("/selectEquipmentByEquipTypeId")
    @ResponseBody
    public LimsJson<Equipment> selectEquipmentByEquipTypeId(HttpServletRequest request, Integer equipTypeId){
        return equipmentService.selectEquipmentByEquipTypeId(request,equipTypeId);
    }

    /**
    * 创建作者:   刘欢
    * 创建日期:   18:41 2019/7/19
    * 方法介绍:   根据设备id来查询本条设备的信息
    * 参数说明:   * @param request
    * @param equipId
    * @return     com.xoa.util.lims.LimsJson<com.xoa.lims.equipment.model.Equipment>
    */


    @RequestMapping("/selectEquipmentByEquipId")
    @ResponseBody
    public LimsJson<Equipment> selectEquipmentByEquipId(HttpServletRequest request, Integer equipId){
        return equipmentService.selectEquipmentByEquipId(request,equipId);
    }

    /**
    * 创建作者:   刘欢
    * 创建日期:   18:40 2019/7/19
    * 方法介绍:   添加
    * 参数说明:   * @param request
    * @param equipment
    * @return     com.xoa.util.lims.LimsJson<com.xoa.lims.equipment.model.Equipment>
    */


    @RequestMapping("/addEquipment")
    @ResponseBody
    public LimsJson<Equipment> addEquipment(HttpServletRequest request,Equipment equipment){
        return equipmentService.addEquipment(request,equipment);
    }

    /**
    * 创建作者:   刘欢
    * 创建日期:   18:40 2019/7/19
    * 方法介绍:   编辑单条
    * 参数说明:   * @param request
    * @param equipment
    * @param equipId
    * @return     com.xoa.util.lims.LimsJson<com.xoa.lims.equipment.model.Equipment>
    */


    @RequestMapping("/editEquipment")
    @ResponseBody
    public LimsJson<Equipment> editEquipment(HttpServletRequest request,Equipment equipment,Integer equipId){
        return equipmentService.editEquipment(request,equipment,equipId);
    }

    /**
    * 创建作者:   刘欢
    * 创建日期:   18:40 2019/7/19
    * 方法介绍:   删除单条
    * 参数说明:   * @param request
    * @param equipId
    * @return     com.xoa.util.lims.LimsJson<com.xoa.lims.equipment.model.Equipment>
    */



    @RequestMapping("/deleteEquipment")
    @ResponseBody
    public LimsJson<Equipment> deleteEquipment(HttpServletRequest request,Integer equipId){
        return equipmentService.deleteEquipment(request,equipId);
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   18:40 2019/7/19
    * 方法介绍:   删除多条
    * 参数说明:   * @param request
    * @param equipIds
    * @return     com.xoa.util.lims.LimsJson<com.xoa.lims.equipment.model.Equipment>
    */


    @RequestMapping("/deleteArrayEquipment")
    @ResponseBody
    public LimsJson<Equipment> deleteArrayEquipment(HttpServletRequest request,String equipIds){
        return equipmentService.deleteArrayEquipment(request,equipIds);
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   11:27 2019/7/23
    * 方法介绍:   批量修改
    * 参数说明:   * @param json
    * @return     com.xoa.util.lims.LimsJson<java.lang.Object>
    */


    @RequestMapping("/editArrayEquipment")
    @ResponseBody
    public LimsJson<Object> editArrayEquipment(String json){
        return equipmentService.editArrayEquipment(json);
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   10:43 2019/8/2
    * 方法介绍:   设备台账同步能力项
    * 参数说明:   * @param equipId
    * @return     com.xoa.util.lims.LimsJson<java.lang.Object>
    */

    @RequestMapping("/togetherEquipCapy")
    @ResponseBody
    public LimsJson<Object> togetherEquipCapy(Integer equipId){
        return equipmentService.togetherEquipCapy(equipId);
    }


    /**
    * 创建作者:   刘欢
    * 创建日期:   11:00 2019/8/2
    * 方法介绍:   修改能力项的值
    * 参数说明:   * @param equipCapyValueJson
    * @return     com.xoa.util.lims.LimsJson
    */


    @RequestMapping("/editEquipCapyValue")
    @ResponseBody
    public LimsJson editEquipCapyValue(String equipCapyValueJson){
        return equipmentService.editEquipCapyValue(equipCapyValueJson);
    }

    /**
    * 创建作者:   李 然
    * 创建日期:   10:40 2019/9/21
    * 方法介绍:   根据平板所选的结算组织和类型编号查询设备
    * 参数说明:   * @param typeNo
    * @return     com.xoa.util.lims.LimsJson
    */
    @RequestMapping("/getEquipByTypeNo")
    @ResponseBody
    public LimsJson getEquipByTypeNo(String typeNo){
        return equipmentService.getEquipByTypeNoAndExpId(typeNo);
    }

    /**
     * 创建作者:   陈东虎
     * 创建日期:   16：:14 2019/11/11
     * 方法介绍:   根据下拉框设备表字段 模糊查询
     * 参数说明:   * @param FieldName字段名 FieldValue字段值
     * @return     com.xoa.util.lims.LimsJson
     */
    @RequestMapping("/selectEquipByField")
    @ResponseBody
    public LimsJson selectEquipByField(String fieldName,String fieldValue,Integer page,Integer limit,Integer equipTypeId){
        return equipmentService.selectEquipByField(fieldName,fieldValue,page,limit,equipTypeId);
    }


    /*
     * 创建作者 陈东虎
     * 创建日期 2019/11/21 14:40
     * 方法介绍
     * 参数说明
     * @return LimsJson
     */
    @RequestMapping("/getEquipInfoByequipId")
    @ResponseBody
    public LimsJson getEquipInfoByequipId(Integer equipId){
        return equipmentService.getEquipInfoByequipId(equipId);
    }

    /*
    * 创建作者:   杨 岩 林
    * 创建日期:   16:12 2019/12/19
    * 方法介绍:   通过ids串获取设备
    * 参数说明:   * @param
    * @return
    */
    @RequestMapping("/showEquipByIds")
    @ResponseBody
    public LimsJson showEquipByIds(String ids){
        return equipmentService.getEquipByIds(ids);
    }

    /**
     *
     * @作者 李卫卫
     * @创建日期 17:07 2020/7/14
     * @类介绍 获取点击部门下的用户以及子部门用户
     * @参数
     * @return limsJson
     */

    @RequestMapping("/getNewChDept")
    @ResponseBody
    public ToJson<Users> getNewChDept(HttpServletRequest request, Integer deptId){
        return equipmentService.getNewChDept(request,deptId);
    }

    @RequestMapping("/getDeptExp")
    @ResponseBody
    public LimsJson getDeptExp(HttpServletRequest request){
        return equipmentService.getDeptExp(request);
    }


    /**
     *
     * @作者 李卫卫
     * @创建日期 16:08 2020/7/21
     * @类介绍   获取附件url串
     * @参数
     * @return limsJson
     */

    @RequestMapping("selectAttchUrl")
    @ResponseBody
    public LimsJson selectAttchUrl(String attachId,HttpServletRequest request,String model){
        return equipmentService.selectAttchUrl(attachId,request,model);
    }

    @RequestMapping(value="/limsDownload",produces = {"application/json;charset=UTF-8"})
    public String limsDownload(HttpServletRequest request, HttpServletResponse response, String attachId, String model){
        equipmentService.download(request,response,attachId,model);
        return null;
    }
}
